DomainObjects Class Library

FieldConversion<FieldConversionSubClass> Class

Provides a callback interface for DomainObjects to convert a database type to a field type when retrieving a value from the database and vice versa when storing a field to the database. Implement this interface when a persistable object field type is different from the database column type.

For a list of all members of this type, see FieldConversion<FieldConversionSubClass> Members.

System.Object
   FieldConversion<FieldConversionSubClass>

public class FieldConversion<FieldConversionSubClass> where FieldConversionSubClass: DefaultConstructorConstraint, FieldConversion<FieldConversionSubClass>

Remarks

author: Richard Beauchamp

$Id: FieldConversion.cs 156 2006-06-22 14:19:47Z rbeauchamp $

Example

The following code sample demonstrates an implementation of IFieldConversion that converts between value of Int32.MinValue in a persistable object and a value of null in a database.

public class NullableIntegerConversion : IFieldConversion
{
    // This method is called by DomainObjects when retrieving the column from the database.
    public object DbTypeToFieldType(Type targetFieldType, object source)
    {
      // if the value in the database was null then return Int32.MinValue
      if (source == null)
      {
        return Int32.MinValue;
      }
      else // just return the Int32 value
      {
        return source;
      }
    }

    // This method is called by DomainObjects when storing a field to the database.
    public object FieldTypeToDbType(DbType targetDbType, object source)
    {
      // if the value in the persistable object was Int32.MinValue then return null
      if ((int)source == Int32.MinValue)
      {
       return null;
      }
      else // just return the Int32 value
      {
        return source;
      }
    }
 }
}
For DomainObjects to use this IFieldConversion implementation at runtime, set the value of the the FieldDescriptor's ConversionClassName attribute to the name of the implementation class:
<FieldDescriptor Id="TABLE3"
                 FieldName="_myNullableInt"
                 ColumnName="NULLABLE_INT"
                 DbType="INTEGER"
                 ConversionClassName="MyNamespace.NullableIntegerConversion"
 />

Requirements

Namespace: DomainObjects.Facade.Domain

Assembly: DomainObjects.Core (in DomainObjects.Core.dll)

See Also

FieldConversion<FieldConversionSubClass> Members | DomainObjects.Facade.Domain Namespace